/**
  ******************************************************************************
  * File Name          : config.h
  * Description        : 本文档包含系统运行参数和设置参数的定义头文件
  *
  ******************************************************************************
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/
#ifndef __CONFIG__
#define __CONFIG__


/* Includes ------------------------------------------------------------------*/

//#include "alldefine.h"
#include "allinclude.h"



#include "SysFlash.h"
#include "SysUtcTime.h"
#include "ModbusSlave.h"
#include "ModbusMaster.h"

#include "Mqcp.h"
#include "TimeList.h"

/* typedef struct ------------------------------------------------------------------*/



/*
*
*
	设备参数及串口参数
	uint16_t						ID;					//从站ID
	uint16_t						Save;				//保存参数
	uint32_t						BaudRrate;	//波特率
	uint16_t						Parity;			//校验位
	uint16_t						MQCPStart;	//工作模式--MQCP_MOD：EMMQCP模式；NET_MODEM透传模式；WAY_SLAVE：网关从站模式；WAY_MASTER：网关主站模式
*
*/
typedef struct
{
	uint16_t						SlaveID;		//从站ID			40101
	uint16_t						Save;				//保存参数		40102
//	uint32_t						BaudRrate;	//波特率			40103
//	uint16_t						Parity;			//校验位			40105
//	uint16_t						ModemStart;	//工作模式		40106
}ModemSetDef;


/*
*
	uint8_t		url[40];							//服务器地址
	uint16_t	port;									//服务器端口
	uint16_t	Type;									//链接类型：UDP/TCP
*
*/
typedef struct
{
	uint8_t		url[40];							//服务器地址	40107~40126		
	uint16_t		port;									//服务器端口				40127
	uint16_t		Type;									//链接类型：UDP/TCP	40128
	
}ServeUrlDef;



/*
*NetSetDef
*
	uint16_t	LoginType;							//注册包数据类型--LOGIN_IMEI:IMEI;LOGIN_ICCID--ICCID;LOGIN_DATA--自定义数据
	uint8_t		Login[20];							//注册包数据
	uint16_t	HeartType;							//心跳包数据类型--
	uint16_t	HeartTime;
	uint8_t		Heart[20];							//心跳包数据
	uint8_t		ICCID[20];							//SIM卡号				
	uint8_t		IMEI[20];								//设备序列号		
*
*/

typedef struct
{
	
	uint16_t	LoginType;				//40129			//注册包数据类型--LOGIN_IMEI:IMEI;LOGIN_ICCID--ICCID;LOGIN_DATA--自定义数据
	
	uint16_t	HeartType;				//40130			//心跳包数据类型--
	uint16_t	HeartTime;				//40131
	
	uint8_t		Login[40];				//40132~40151			//注册包数据
	uint8_t		Heart[40];				//40152~40171			//心跳包数据
	uint8_t		ICCID[22];				//40172~40182			//SIM卡号				40037-40046
	uint8_t		IMEI[20];					//40183~40192			//设备序列号		40037-40046
}NetSetDef;




/*
*
*
*
*/

typedef struct
{
	uint16_t 	DO;
	
	uint16_t 	DI0;
	uint16_t 	Police;
	uint16_t 	Key;
	
	uint16_t	RunData[92];			//运行时间
	
	uint32_t	RunTimeSec;			
	uint16_t	RunLinkStart;//设备运行时间
	uint16_t	RunCSQ;
}ConfigDateRunDef;



/**

		ConfigDateSetDef								设置参数定义结构体
		
		AdiRangeDef		AdiSet						模拟量量程设置参数
		DOLogicDef		DoLogicSet				继电器输出逻辑控制参数
		uint16_t 			SlaveID						本机MODBUS从机ID
		uint16_t			Save							参数保存选项，当设置Save=1，系统保存参数，并将Save重新置0
		uint32_t			ComBps						串口波特率
		uint16_t  		ComPaty						串口校验位
**/
typedef struct
{
	
	ModemSetDef					ModemSet;		//设备工作参数	//40101~40106
	uint16_t						SaveState;//保存状态
	uint16_t						Logic;
	uint16_t						TimeDelayOn;
	uint16_t						TimeDelayOff;
	ServeUrlDef					ServeUrl;		//服务器参数		//40107~40128
	NetSetDef						NetSet;			//注册心跳参数	//40129~40192	
	MqcpDeviceDef				MqcpDevice;	//MQCP协议数据	//40193~40204
	sTimeListWorkDef		sTimeList;		//定时功能		//40205~40285
	
}ConfigDateSetDef;



/**

		ConfigDateSaveDef								设置参数保存数据结构体
		
		uint16_t	BeginFlag							存储开始标记，初始化为0x5555
		ConfigDateSetDef SaveDateDef		参数存储结构体，初始化时写入出厂默认参数
		uint16_t  EndFlag								存储结束标记，初始化为0xaaaa

**/

typedef struct
{
	
	uint16_t	BeginFlag;
	
	ConfigDateSetDef SaveDateDef;
	
	uint16_t  EndFlag;
	
}ConfigDateSaveDef;











/* Private function prototypes -----------------------------------------------*/

//extern config_date_save_Def config_date;

extern ConfigDateRunDef		*RunDataConfig;
extern ConfigDateSetDef		*SetDataConfig;



extern void ConfigInit(void);

extern uint8_t ConfigSave(void);

extern void SaveProcess(void);

extern void AppVectorTblRemap(void);



#endif /*__ pinoutConfig_H */

/**
  * @}
  */

/**
  * @}
  */

/************************ (C) COPYRIGHT INLEEQ *****END OF FILE****/
